package com.lanou3g.code0417_2.thread1;

/**
 * Created by dllo on 18/4/17.
 */
public class Test02 {
    public static void main(String[] args) {
        //匿名对象,直接new出对象,而不给这个对象变量名
        //在new完后直接调用对象方法
        //并只有这一次调用方法的机会
        new ThreadA().start();

        //匿名内部类
        //匿名指的是没有类名
        //在构造方法的小括号后 和分号前 加上{}
        //那么{}就代表一个类
        //如下代表创建了一个没有类名的Thread类的子类
        //同样可以覆写父类(Thread)中的方法
        Thread a = new Thread(){
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println(i);
                }
            }
        };
        a.start();
        /*
        new Thread(){
            @Override
            public void run() {
                super.run();
            }
        }.start();
         */
       // new Thread().start();//空线程
        new Thread(() -> {    //new Thread() --> () -> 括号里没有参数
            for (int i = 0; i < 100; i++) {    //若{}内只有一条语句,则大括号可以省略
                System.out.println(i);  //变为new Thread(() -> System.out.println(i)).start();
            }
            //public void fun(){}  其内方法,a无法调用( fun()方法 )
        }).start(); //因为没有类名,由构造方法定义知其不是构造方法
    }
}
